5 Struts Tags
要在jsp中使用Struts2的标签,需要先引入<%@ taglib prefix="s" uri="/struts-tags" %>
5.1 通用标签
property
1234<li>property: <s:property value="username"/> </li><li>property 取值为字符串: <s:property value="'username'"/> </li><li>property 设定默认值: <s:property value="admin" default="管理员"/> </li><li>property 设定HTML: <s:property value="'<hr/>'" escape="false"/> </li>set 将某个值放入指定范围内
1234567891011<li>set 设定adminName值(默认为request 和 ActionContext): <s:set var="adminName" value="username" /></li><li>set 从request取值: <s:property value="#request.adminName" /></li><li>set 从ActionContext取值: <s:property value="#adminName" /></li><%--<li>set 设定范围: <s:set name="adminPassword" value="password" scope="page"/></li><li>set 从相应范围取值: <%=pageContext.getAttribute("adminPassword") %></li>--%><li>set 设定var,范围为ActionContext: <s:set var="adminPassword" value="password" scope="session"/></li><li>set 使用#取值: <s:property value="#adminPassword"/> </li><li>set 从相应范围取值: <s:property value="#session.adminPassword"/> </li>bean 实例化一个JavaBean
1234567891011121314<li>bean 定义bean,并使用param来设定新的属性值:<s:bean name="com.struts2.tags.Dog" ><s:param name="name" value="'pp'"></s:param><s:property value="name"/></s:bean></li><li>bean 查看debug情况:<s:bean name="com.struts2.tags.Dog" var="myDog"><s:param name="name" value="'oudy'"></s:param></s:bean>拿出值:<s:property value="#myDog.name"/></li>include 将一JSP或者Servlet包含到当前页面
123456789101112<li>include _include1.html 包含静态英文文件<s:include value="/_include1.html"></s:include></li><li>include _include2.html 包含静态中文文件<s:include value="/_include2.html"></s:include></li><li>include _include1.html 包含静态英文文件,说明%用法<s:set var="incPage" value="%{'/_include1.html'}" /><s:include value="%{#incPage}"></s:include></li>param 为其他标签提供参数
- debug 辅助调试,查看值栈等信息
5.2 控制标签
if elseif else 用来控制选择输出的标签
123456789<li>if elseif else:age = <s:property value="#parameters.age[0]" /> <br /><s:set var="age" value="#parameters.age[0]" /><s:if test="#age < 0">wrong age!</s:if><s:elseif test="#parameters.age[0] < 20">too young!</s:elseif><s:else>yeah!</s:else><br /><s:if test="#parameters.aaa == null">null</s:if></li>iterator 迭代器,用于将集合迭代输出
1234567891011121314151617181920212223242526272829303132333435363738394041<li>遍历集合:<br /><s:iterator value="{1, 2, 3}" ><s:property/> |</s:iterator></li><li>自定义变量:<br /><s:iterator value="{'aaa', 'bbb', 'ccc'}" var="x"><s:property value="#x.toUpperCase()"/> |</s:iterator></li><li>使用status:<br /><s:iterator value="{'aaa', 'bbb', 'ccc'}" status="status"><s:property/> |遍历过的元素总数:<s:property value="#status.count"/> |遍历过的元素索引:<s:property value="#status.index"/> |当前是偶数?:<s:property value="#status.even"/> |当前是奇数?:<s:property value="#status.odd"/> |是第一个元素吗?:<s:property value="#status.first"/> |是最后一个元素吗?:<s:property value="#status.last"/><br /></s:iterator></li><li><s:iterator value="#{1:'a', 2:'b', 3:'c'}" ><s:property value="key"/> | <s:property value="value"/> <br /></s:iterator></li><li><s:iterator value="#{1:'a', 2:'b', 3:'c'}" var="x"><s:property value="#x.key"/> | <s:property value="#x.value"/> <br /></s:iterator></li><li><s:fielderror fieldName="fielderror.test" theme="simple"></s:fielderror></li>subset 用于截取集合的部分元素,形成新的子集合
5.3 UI标签
Struts2中一共定义了4个主题,simple, XHTML(默认), css_xhtml, ajax.
5.4 AJAX标签
后续可以查
5.5 $ # % 的区别
$用于i18n和struts配置文件
- #取得ActionContext的值
- %将原本的文本属性解析为OGNL,对本来是OGNL的属性不起作用
参考文章
这部分用的不多,所以存了几个相关的比较全的博客地址,方便需要的时候去学习:
Struts2标签小结
UI标签
AJAX标签